<?php

namespace Sms\Controller;

use Think\Controller;

class IndexController extends Controller{
	/*public function __construct(){
		session_start();
	}*/
    public function index(){

        $this->display();
    }
    //打开页面时引入
    public function smscode(){
		$_SESSION['send_code'] = $this->random(6,1);
    }
    //随机数
    public function random($length = 6 , $numeric = 0) {
		PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
		if($numeric) {
			$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
		} else {
			$hash = '';
			$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
			$max = strlen($chars) - 1;
			for($i = 0; $i < $length; $i++) {
				$hash .= $chars[mt_rand(0, $max)];
			}
		}
		return $hash;
	}
	//验证手机验证码
	public function check(){
		if($_POST){
			//echo '<pre>';print_r($_POST);print_r($_SESSION);
			if($_POST['mobile']!=$_SESSION['mobile'] or $_POST['mobile_code']!=$_SESSION['mobile_code'] or empty($_POST['mobile']) or empty($_POST['mobile_code'])){
				echo json_encode(0);	
			}else{
				$_SESSION['mobile'] = '';
				$_SESSION['mobile_code'] = '';	
				echo json_encode(1);	
				//调写入用户方法----------------------------------------------------------------
				A("Home://User")->add($_POST["mobile"],$_POST["password"]);
			}
		}
	}
	//请求数据到短信接口，检查环境是否 开启 curl init。
	public function Post($curlPost,$url){
			$curl = curl_init();
			curl_setopt($curl, CURLOPT_URL, $url);
			curl_setopt($curl, CURLOPT_HEADER, false);
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($curl, CURLOPT_NOBODY, true);
			curl_setopt($curl, CURLOPT_POST, true);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
			$return_str = curl_exec($curl);
			curl_close($curl);
			return $return_str;
	}

	//将 xml数据转换为数组格式。
	public function xml_to_array($xml){
		$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";
		if(preg_match_all($reg, $xml, $matches)){
			$count = count($matches[0]);
			for($i = 0; $i < $count; $i++){
			$subxml= $matches[2][$i];
			$key = $matches[1][$i];
				if(preg_match( $reg, $subxml )){
					$arr[$key] = $this->xml_to_array( $subxml );
				}else{
					$arr[$key] = $subxml;
				}
			}
		}
		return $arr;
	}
	public function send(){
		//短信接口地址
		$target = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";
		//获取手机号
		$mobile = $_POST['mobile'];
		//获取验证码
		$send_code = $_POST['send_code'];
		//生成的随机数
		$mobile_code = $this->random(4,1);
		if(empty($mobile)){
			exit('手机号码不能为空');
		}
		//防用户恶意请求
		if(empty($_SESSION['send_code']) or $send_code!=$_SESSION['send_code']){
			exit('请求超时，请刷新页面后重试');
		}

		$post_data = "account=cf_fbh&password=9393e424c57b23295513d55beb31822d&mobile=".$mobile."&content=".rawurlencode("您的验证码是：".$mobile_code."。请不要把验证码泄露给其他人。");
		//用户名是登录ihuyi.com账号名（例如：cf_demo123）
		//查看密码请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY
		$gets =  $this->xml_to_array($this->Post($post_data, $target));
		if($gets['SubmitResult']['code']==2){
			$_SESSION['mobile'] = $mobile;
			$_SESSION['mobile_code'] = $mobile_code;
		}
		echo $gets['SubmitResult']['msg'];
	}
}
